<template>
	<view class="page">
	<!-- <button type="default" class="help">帮</button> -->
	<!--显示当前老人和志愿者的人数 -->
	<view class="showNUmber">
		<view class="" style="text-align: center; margin-top: 35upx;"> 
		 <image style="width: 150upx; height: 150upx; "  src="../../static/helplogo.png">
		 </image>
		</view>
		<view class="personNumber">
			<!-- 显示老人人数 -->
			<view class="oldnumber">
			<view class="" style="color: green;font-size: 60upx;font-weight: 550;">{{oldNumber}}</view>
				<view class="">老人</view>
			</view>
			<!-- 志愿者人数 -->
			<view class="volunnumber">
					<view class="" style="color: green;font-size: 60upx;font-weight: 550;">{{volunNumber}}</view>
				<view class="">志愿者</view>
			</view>
		</view>
	    
	</view >
		<view style="height: 70%;">
			<button type="primary" class="help" @click="forHelp">帮</button>
			</view>
	
	
	 <!-- 过场等待加载数据 -->
	 <!-- 接收到数据然后跳转页面 -->
	</view>
</template>

<script>
	//引入高德地图获取中文地址
	import amap from '../../common/amap-wx.js'; 
	export default {
		data() {
			return {
				   amapPlugin: null,  
				            key: 'fcd9293fc31847ad5a39c263cd22faeb',		
							oldNumber:122,
							volunNumber:223,
		
			}
		},
		onShow(){
			this.getNumber();
		},
		onLoad() {
			//初始化一个高德小程序 SDK 的实例对象。
			  this.amapPlugin = new amap.AMapWX({  
			            key: this.key  
			        });  
					//获得人数
				this.getNumber();
		},
		methods: {
			//请求帮助的按钮
			forHelp(){
				let addressName = '';
				let latitude = '';
				let longitude = '';
				let userId = '';
				let eventId = ''; //求助事件Id
				uni.showLoading({
				    title: '正在为你查找'  
				});   
				//获取具体地点
				this.amapPlugin.getRegeo({		
					success: (data) => {  
					addressName = data[0].name;
					latitude = data[0].latitude;
					longitude = data[0].longitude;
						//调用截取函数
					addressName	= this.trim(addressName);
				  console.log("需要上传的老人地址：")
			      console.log(addressName)
				  console.log(latitude)
				  
				  //获取地点后获取本地登录缓存
				  var userInfo = uni.getStorageSync('globalUser');
				  		    
				  if(userInfo !== null && userInfo !== "" && userInfo !== undefined){
				  	userId = userInfo._id;
				  }else{
				  	userId = ''; //清空数据
				  }
				  //所有信息获取完成后即进行请求  0为老人请求  1为志愿者请求
				  if(userInfo.userType == "0"){ 
				  	  //请求时常为60s 第一次为插入请求 后面均为查询请求 最后一次请求为从该数据库中删除数据
				  	var times = -1;
				  	let matching = 0;
				  	var i = setInterval(function() {
				  	     times++
				  		 //时间大于1分钟 
				  	     if (times > 60) {
				  	        //且未匹配到志愿者则提示查询失败
				  			if(matching == 0){ 
				  			clearInterval(i)
				  			uni.hideLoading(); //关闭查询
				  			uni.showToast({title: '请稍后重试'});  
				  		   //未匹配到志愿者则发起删除数据操作
				  		    console.log('我要删除数据了');
				  			//进行删除帮助数据请求
				  	         uniCloud.callFunction({
				  	             name:"oldHelp",
				  	         	data:{
				  	         		eventId:eventId,
				  	         		type:2, //0为第一次插入数据操作 1为每5s查询操作 2为最后的删除操作
				  	         	},
				  	         	success: (res) => {
				  	         		console.log(res);		
				  	         	},
				  	         	fail: (err) => {
				  	         		console.log(err);         
				  	         	}
				  	         });
				  			}
				  			
				  	     } else {
				  			 //每5s发送一次请求
				  	         if(times % 5 == 0){
				  		//云开发  第一次进行插入请求
				  	if(times == 0){
				  			console.log("待传地址:")
				  		console.log(addressName)
				  		uniCloud.callFunction({
				  		     name:"oldHelp",
				  		 	data:{
				  				oldId:userId,  //用户唯一id
				  				oldCNlocation:addressName, //中文地点 都市新都区蜀龙大道北段245号
				  			//	oldCNlocation:"成都市新都区蜀龙大道北段号", 
								oldlatitude:latitude,//纬度	
				  				oldlongitude:longitude,	//经度	
				  				
				  				volunId:'',  //用户唯一id
				  				volunCNlocation:'', //中文地点		
				  				volunlatitude:'',//纬度	
				  				volunlongitude:'',	//经度	
				  				
				  			    matching:0,
				  				helpComplete:0,
				  				completeTime:'',//帮助时间
				  				randomNumber:'',  //这是当匹配到时生成一个随机数 用于扫码验证是否帮助成功
				  				type:0, //0为第一次插入数据操作 1为每5s查询操作 2为最后的删除操作
								oldRate:0 ,//老人打分（给志愿者）
								volunRate:0,//年轻人打分
							},
				  		 	success: (res) => {
				  				console.log(res)
				  		 			eventId = res.result.id;		
				  		 	},
				  		 	fail: (err) => {
				  		 		console.log(err);
				  		 	}
				  		    
				  		 });			 
				  				}else{				  		
				  			 //云开发 1分钟内查询操作
				  			uniCloud.callFunction({
				  			    name:"oldHelp",
				  				data:{
				  					eventId:eventId,
				  					type:1, //0为第一次插入数据操作 1为每5s查询操作 2为最后的删除操作
				  				},
				  				success: (res) => {
				  					console.log("老人查询结果：");
				  					console.log(res);
				  				matching = res.result.data[0].matching;
				  				if( matching == 1){
				  					clearInterval(i); //终止定时器
				  					uni.hideLoading(); //关闭查询
				  					uni.showToast({
				  						title: '请等待帮助',
				  						duration:3000
				  					});
				  					//跳转到等待帮助页面
				  					uni.navigateTo({
				  						url: '../waitHelp/waitHelp?eventId=' + eventId
				  					});
				  				}					
				  				},
				  				fail: (err) => {
				  					console.log(err);
				  				}
				  			   
				  			});	
				  				 }
				  					   
				  			 }
				  	     }
				  	}, 1000)	  
				  		  
				  	}else{	
				  	    console.log("志愿者响应:")	
				  		var volunCNlocation = '';
				  		var volunlatitude = '';
				  		var volunlongitude = '';					
				  		this.amapPlugin.getRegeo({
				  			success: (data) => {  	
				  		volunCNlocation = data[0].name;
				  		volunlatitude = data[0].latitude;
				  		volunlongitude = data[0].longitude;
						//调用截取函数
						volunCNlocation	= this.trim(volunCNlocation);
				  		console.log(volunCNlocation);
				  		//点击即发送查表请求  		
				  	uniCloud.callFunction({
				  	     name:"oldHelp",
				  	 	data:{
				  			volunId:userId,  //用户唯一id
				  			volunCNlocation:volunCNlocation, //中文地点 都市新都区蜀龙大道北段245号
				  	     //  volunCNlocation:'成都市新都区上升街号',
				  			volunlatitude:volunlatitude,//纬度	
				  			volunlongitude:volunlongitude,	//经度	
				  			type:3, //0为老人第一次插入数据操作 1为每5s查询操作 2为最后的删除操作 3为志愿者查询操作（若有帮助则匹配）
				  	 	},
				  	 	success: (res) => {
				  			console.log("志愿者查找结果：")
				  			uni.hideLoading();  
				  			console.log(res);
				  			console.log(res.result.affectedDocs);
				  			if(res.result.affectedDocs == 0)
				  			return uni.showToast({title: '没有请求'});				 		
				  			//显示有老人需要帮助 跳转页面
				  			uni.showToast({
				  				title: '有帮助请求',
				  				duration:3000
				  			});
				  			//跳转到给予帮助页面
				  			uni.navigateTo({
				  				url: '../provideHelp/provideHelp?eventId=' + res.result.data[0]._id
				  			});
				  	 	},
				  	 	fail: (err) => {
				  	 		console.log(err);
				  	 	}
				  	    
				  	 });
				  	
				  			}		
				  		});
				  	
				  	}
					},
				  fail: function(info){
						//失败回调
						console.log(info)
					  }
				});  
							
			},
			//用来将中文地址中的数字 例如 112号删除 用来匹配同一个街道
		trim(str){
			  let reg = /[0-9]+/g;
			      let str1 = str.replace(reg,"");
			      return str1;
		},
		//发起请求获取人数
		getNumber(){		
			uniCloud.callFunction({
			    name:"getPersonLunber",
				data:{
				},
				success: (res) => {
					console.log(res.result.affectedDocs);
					const num = res.result.affectedDocs;
					let oldNum = 0;
					let volunNum = 0;
					let personNumber = res.result.data;
	                for(let i = 0;i<num;i++){
						if(personNumber[i].userType == "0")
						oldNum++;
						else
						volunNum++;
					}
					this.oldNumber = oldNum;
					this.volunNumber = volunNum;
				}   
			});	
		}
		}
	}
</script>

<style lang="scss">
.help{
	width: 200px;
	height: 200px;
	border-radius: 50%;
	background: #ec6617;
	text-align: center;
	font-size: 150px;
	line-height: 200px;  //让行高和父盒子高度一样就可以文字垂直居中了
	color: #FFFFFF;
	margin-top: 20%;
}
.page{
	display: flex;
	flex-direction: column;
	
}

.showNUmber{
	height: 30%;
    border:1px solid green;
	border-radius: 8%;
	width: 90%;
	margin:0 auto;
   //background-image:radial-gradient(at top,red 0%,yellow 50%,#ff00aa 100%)
}
.personNumber{
	display: flex;
	flex-direction: row;
	justify-content: space-around;
	margin-bottom: 30px;
	.oldnumber{
		display: flex;
		flex-direction: column;
		align-items: center;
	}
	.volunnumber{
		display: flex;
		flex-direction: column;
		align-items: center;
	}
}
</style>

<!-- 存在的问题： -->
	<!-- 帮助按钮颜色在小程序中暂时无法修改 -->